表1 TTIリファレンス ・――――――――――――――――――――――――――――――――・ | ■構文規則                          | |                                | | プログラム                          | | ・文法はほぼtiny BASICと同様            | | ・ラベルは0〜1023の範囲で必要なところだけつける       | | ・ステートメント間のセパレー夕はスペース           | | ・セミコロン以下の1行は注釈とみなされる           | | ・ステートメントと式のあいたはスペースでくぎる        | |                                | | 式                              | | ・ひとつの項、もしくは複数の項を2項演算子でつないだもの   | | ・演算はすべて符号なし8ビットで行われる。          | |  また、オーバーフローのチェックはしない           | | ・負数は2の補数または、0−のかたちで表現する        | | ・演算は優先順位がないので、左から順番に行われる。      | |  また、括弧を使うことはできない               | |                                | | 項                              | | ・定数、変数,関数                      | |                                | | ■定数                            | | 10進数                            | | ・取りうる値は、0〜 255                   | |   255以上の値は、 256て割った余りが値となる         | |                                | | 16進数                            | | ・先頭に$をつけて表す。                   | |  値の範囲は00H〜FFH。必ず2桁で表すこと           | |                                | | 文字定数                           | | ・シングル・クォーテーションを先頭とする           | |  1文字の ASCIIコードを値とする               | |                                | | ■変数                            | | 1文字変数                          | | ・A、B……Zの1文字で表される変数             | |                                | | 特殊変数                           | | ・[と]の2つ。                       | |  WIND命令で表される番地をアクセスする            | |                                | | ■演算子                           | | 2項演算子                          | | ・加減乗除剰余記号、比較演算子、論理演算子がある       | |                                | | 加減乗除剰余記号                       | | ・それぞれ、+、−、*、/、¥である             | |                                | | 比較演算子                          | | ・=、≠(<>のこと)、>、<                | | ・真のとき1、偽のとき0を値とする              | |                                | | 論理演算子                          | | ・AND、OR、XORの3種があり、             | |  それぞれ、&、;、!で表す                 | |                                | | ■ステートメント                       | | .(ピリオド)                        | | ・変数名=式                         | | ・左辺の項に右辺の式の値を代入する。             | |  BASICの LET文と同じ                  | |                                | | INC                            | |  INC 1文字変数                       | | ・変数の値に1を加える。機械語と同じ、キャリは立たない    | |                                | | DEC                            | |  DEC 1文字変数                       | | ・変数の値に−1を加える                   | |                                | | ADC                            | |  ADC 1文字変数                       | | ・キャリフラグの値を加える                  | |  具体的には。                        | |   .B=0 .A=A+1 ADC B                     | |  とすると、A= 255のとき、B=1となる           | |                                | | GOTO                           | |  GOTO ラベル                        | | ・指定行へ分岐する。                     | |  コマンドとラベルのあいたのスペースは1個だけ        | |                                | | GOSUB                          | |  GOSUB ラベル                        | | ・サブルーチンを呼び出す                   | |                                | | RETURN                         | |  RETURN                           | | ・GOSUB に対応するRETURN。                  | |  または、BASICの END文                 | |                                | | IF                             | |  IF 式,ラベル                       | | ・式の値が0以外(要するに真)ならば、指定行へ分岐する    | |                                | | REPEAT〜UNTIL                   | |  REPEAT                           | |  UNTIL 式                          | | ・式の値か1になるまで、                   | |  REPEATと UNTILのあいだのプログラムを繰り返す。       | |  なお、途中でGOTOなどで抜け出してもかまわない        | |                                | | END                            | |  END                             | | ・この命令によってコンパイルを終了する            | |                                | | ”str”                          | | ・ダブルクォーテーションで囲まれた文字列をそのまま出力する  | |                                | | ‘ctrl’                         | | ・シングルクォーテーションで囲まれた文字列を         | |  コントロールコードとして出力する              | |   D……カーソルを下へ1文字分移動             | |   U……力ーソルを上へ1文字分移動             | |   R……力ーソルを右へ1文字分移動             | |   L……力ーソルを左へ1文字分移動             | |   C……画面をクリア                    | |   /……改行する                      | |                                | | PRT1                           | |  PRT1 式                          | | ・式の値を10進右詰め3桁で出力する              | |                                | | PRT2                           | |  PRT2 式1,式2                       | | ・式1を上位バイト、式2を下位バイトとみなした        | |  2バイトの値を10進右詰め5桁で出力する           | |                                | | HEX2                           | |  HEX2 式                          | | ・式の値を16進2桁で出力する                 | |                                | | HEX4                           | |  HEX4 式1,式2                       | | ・式1を上位バイト、式2を下位バイトとみなして、       | |  16進4桁で出力する                     | |                                | | CHR                            | |  CHR 式                           | | ・式の値の ASCIIコードを出力する               | |                                | | WIDCH                          | |  WIDCH 式                          | | ・画面の桁数を指定する                    | |                                | | LOCATE                         | |  LOCATE 式1,式2                      | | ・式1をX座標、式2をY座標とする位置へ力−ソルを移動する  | |                                | | BELL                           | |  BELL 式                          | | ・式の回数だけビープ音を鳴らす                | |                                | | WIND1                          | |  WIND1 式1,式2                      | | ・特殊変数[がアクセスする番地を決める。           | |  式1が上位バイト、式2が下位バイトを表す          | |                                | | WIND2                          | |  WIND2 式1,式2                      | | ・特殊変数]がアクセスする番地を決める。           | |  WIND1 と同様                        | |                                | | CALL                           | |  CALL 式1,式2                       | | ・式1を上位バイト、式2を下位バイトとする          | |  アドレスの機械語サブルーチンをコールする          | |                                | | PUTA                           | |  PUTA 式                          | | ・式の値をAccに与える                   | |                                | | GETA                           | |  GETA 変数                         | | ・Accの値を変数に与える                  | |                                | | PUTDE                          | |  PUTDE式1,式2                       | | ・式1の値をDレジスタに、式2の値をEレジスタに与える    | |                                | | GETDE                          | |  GETDE 変数1,変数2                    | |  ・Dレジスタの値を変数1、Eレジスタの値を変数2に与える  | |                                | | @GOTO                          | |  @GOTO 式                          | | ・式の値のラベルへ分岐する                  | |                                | | @GOSUB                         | |  @GOSUB 式                         | | ・式の値のラベルのサブルーチンを呼ぶ             | |                                | | @IF                            | |  @IF 式 ステートメント                   | | ・式の値が真ならば、式以降のステートメントを実行する。    | |  ふつうのBASICのIF文                  | |                                | | PUSH                           | |  PUSH 式                          | | ・式の値をスタックに積む                   | |                                | | POP                            | |  POP 1文字変数                       | | ・スタックから値を取り出す                  | |                                | | LOOPA                          | |  LOOPA ラベル                        | | ・変数Aの値を-1にし、その結果が0でなければラベルヘ分岐する。| |  機械語のDJNZと同様                     | |                                | | LOOPB                          | |  LOOPB ラベル                        | | ・変数Bの値を-1し、その結果が0でなければラベルヘ分岐する。 | |  機械語のDJNZと同様                     | |                                | | ;B                             | |  ;B                             | | ・BASICのSTOP文と同等                  | |                                | | ■関数                            | | (I                             | |  (I                             | | ・キーが押されるのを待って1文字入力し、           | |  その ASCIIコードを値とする                 | |                                | | (G                             | |  (G                             | | ・リアルタイムキー入力。どのキーも押されていないならば0、  | |  なにかのキーが押されていれば、その ASCIIコードを値とする  | |                                | | (F                             | |  (F                             | | ・力−ソルを点滅させて1文字入力する             | |                                | | (R                             | |  (R                             | | ・0〜 255までの乱数を返す                  | |                                | | (X                             | |  (X                             | | ・カーソルのX座標を値とする                 | |                                | | (Y                             | |  (Y                             | | ・カーソルのY座標を値とする                 | |                                | | %R                             | |  式%R                            | | ・式の値を1ビット分、右にずらす               | |                                | | %L                             | |  式%L                            | | ・式の値を1ビット分、左にずらす               | |                                | | (S                             | |  (S                             | | ・力−ソル位置の文字コードを値とする             | |                                | ・――――――――――――――――――――――――――――――――・ 表2 エラーメッセージ表 ・――――――――――――――――――――――――――――――――・ |                                | |SYNTAX ERROR                          | | ステートメントの記述がおかしい                | |                                | |ILLEGAL FUNCTION CALL                      | | 式の記述がおかしい                      | |                                | |UNDEFINED LABEL                         | | 分岐先のラベルが見あたらない                 | |                                | |OUT OF LABEL                          | | ラベルが1023を超えている                   | |                                | |BAD GOSUB                            | | GOSUB のネスティングが64重を超えた              | |                                | |BAD REPEAT                           | | REPEATループのネスティングが16重を超えた           | |                                | |BAD UNTIL                            | | REPEATがないのに UNTILを実行しようとした           | |                                | |BAD PUSH                            | | データスタックがオーバーフローした              | |                                | |BAD POP                             | | スタックが空なのにデータを取り出そうとした          | |                                | ・――――――――――――――――――――――――――――――――・ 表3 コマンドー覧 ・――――――――――――――――――――――――――――――――・ |コマンド|          機     能          | |――――+―――――――――――――――――――――――――――| |I   |テキストエンドより追加入力を始める。         | |    |SHIFT+BREAKでコマンド入力に戻る。          | |――――+―――――――――――――――――――――――――――| |Tn  |第n行からテキストを表示する。            | |    |スペースで一時停止、                 | |    |SHIFT+BREAKでコマンド入力に戻る。          | |    |なお、表示後のテキストはスクリーンエディット可能。  | |――――+―――――――――――――――――――――――――――| |Dn  |第n行を削除する。                  | |――――+―――――――――――――――――――――――――――| |Bn  |第n行からテキストの挿入を始める。          | |    |SHIFT+BREAKでコマンド入力に戻る。          | |――――+―――――――――――――――――――――――――――| |Sファイル名|現在作成しているテキストファイル名でセーブする。   | |――――+―――――――――――――――――――――――――――| |Lファイル名|ファイル名のテキストをロードする。          | |――――+―――――――――――――――――――――――――――| |Z   |ディレクトリを表示する。               | |――――+―――――――――――――――――――――――――――| |&   |現在作成中のテキストを消去する。           | |――――+―――――――――――――――――――――――――――| |R   |テキストを復活する。                 | |――――+―――――――――――――――――――――――――――| |P   |Tコマンドにおけるプリンタ出力のON/OFFを設定する。   | |    |デフォルトは OFF。                  | |――――+―――――――――――――――――――――――――――| |F文字列|先頭から文字列を探し始める。             | |    |スペースで一時停止、SHIFT+BREAKでコマンド入力に戻る。| |――――+―――――――――――――――――――――――――――| |M   |現在作成中のテキストの格納されている アドレスを表示する。  | |――――+―――――――――――――――――――――――――――| |Xアドレス |テキスト格納先頭アドレスを指定する。         | |    |デフォルトは4800番地。                | |    |なお、アドレスは16進4桁で、             | |    |また、初めて指定したときは必ず&を実行すること。   | |――――+―――――――――――――――――――――――――――| |!   |S−OSに戻る。                   | |――――+―――――――――――――――――――――――――――| |C   |TTCがメモリにあれば、制御を移す。         | |――――+―――――――――――――――――――――――――――| |G   |プログラムを実行する。                | |――――+―――――――――――――――――――――――――――| |V   |変数リストを表示する。                | ・――――――――――――――――――――――――――――――――・